#include <iostream>
#include <assert.h>
#include <random>
using namespace std;
namespace wanghao
{
    class Find
    {
    public:
        //暴力查找算法
        int SequentialSearch(int* arr,int sz,int k);
        //二分查找
        int BinarySearch(int* arr,int sz,int k);
        //分块查找
        int BlockSearch(int* arr, int sz, int k);
        //插值查找
        int InterpolationSearch(int* arr, int sz, int k);
        //斐波那契查找函数
        int FibonacciSearch(int* arr, int sz, int k);
        //封装快排
        void QuickSort(int* arr,int sz);
        //堆向下调整算法
        void AdjustDown(int* arr,int sz,int parent);
        //交换函数
        void Swap(int& x,int& y);
    private:
        //比较函数
        int compare(const void *a, const void *b);
        //辅助函数，用于计算两个整数中的较小值
        int min(int x, int y);
        //快排hoare版本找基准值
        int _QuickSort(int* arr,int left,int right);
        //快排
        void _QuickSort_(int* arr,int left,int right);
    };
}